package cn.itsource.pethome.service;

import cn.itsource.pethome.query.BaseQuery;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * service层父接口
 * @param <T>
 * @param <Q>
 */
public interface IBaseService<T,Q extends BaseQuery> {
    
    /**
     * 新增、修改
     * @param t
     */
    void save(T t);

    /**
     * 通过主键id删除
     * @param id
     */
    void delete(Long id);

    /**
     * 通过主键id查询
     * @param id
     * @return
     */
    T findOne(Long id);

    /**
     * 配合mybatis的PageHelper实现分页查询
     * @param q
     * @return
     */
    PageInfo<T> findPage(Q q);

    /**
     * 批量删除部门
     * @param ids
     */
    void batchRemove(List<Long> ids);

}
